System and method for decoupling a source application from a target application in an integration cloud service

ABSTRACT

In accordance with an embodiment, described herein is a system and method for decoupling a source application and a target application using a messaging service associated with a cloud-based integration service. A first integration flow can be provided to enable the source application or producer to publish messages to the messaging service. A second integration flow can be provided to enable the target application or consumer to subscribe to the messaging service to receive messages. The source application and the target application can be agnostic of each other&#39;s implementation details, and those of the messaging service, which effectively decouples the source and target applications. The system enables objects between the source and target applications to be sychronized, multiple applications to subscribe to the integration cloud service and register for updates, and one or more applications to be added or removed as subscribers without affecting other subscribers or producers.

CLAIM OF PRIORITY

This application claims the benefit of priority to U.S. Provisional Application titled “SYSTEM AND METHOD FOR PROVIDING A MESSAGING SERVICE FOR USE IN INTEGRATION CLOUD SERVICE RUNTIME ENVIRONMENT”, Application No. 62/171,159, filed Jun. 4, 2015, which is herein incorporated by reference.

COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.

FIELD OF INVENTION

Embodiments of the invention are generally related to integration cloud service (ICS), and are particularly related to a system and method for decoupling a source application from a target application using a messaging service associated with a cloud-based integration service.

BACKGROUND

The rapid shift from on-premises applications to a hybrid mix of Software-as-a-Service (SaaS) and on-premises applications has introduced challenges for companies attempting to simplify enterprise application integration. Integration platform as a service (iPaaS) may rely on integration flows to map data from one application to another. However, the mapped applications in such integration flows may be tightly coupled. If either application changes, the integration flow needs to be modified.

SUMMARY

In accordance with an embodiment, described herein is a system and method for decoupling a source application and a target application using a messaging service associated with a cloud-based integration service. A first integration flow can be provided to enable the source application or producer to publish messages to the messaging service. A second integration flow can be provided to enable the target application or consumer to subscribe to the messaging service to receive messages. The source application and the target application can be agnostic of each other's implementation details, and those of the messaging service, which effectively decouples the source and target applications. The system enables objects between the source and target applications to be sychronized, multiple applications to subscribe to the integration cloud service and register for updates, and one or more applications to be added or removed as subscribers without affecting other subscribers or producers.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 illustrates an integration cloud service, in accordance with an embodiment.

FIG. 2 illustrates a system for decoupling a source application and a target application in an integration cloud service (ICS), in accordance with an embodiment.

FIG. 3 illustrates a user interface for creating a publishing integration flow and a subscribing integration flow, in accordance with an embodiment.

FIG. 4 illustrates a publishing integration flow in an ICS design time, in accordance with an embodiment.

FIG. 5 illustrates a subscribing integration flow in an ICS design time, in accordance with an embodiment.

FIG. 6 illustrates a method for decoupling a source and target system in an integration flow, in accordance with an embodiment.

DETAILED DESCRIPTION

Integration platform as a service, for example, Oracle integration cloud service (ICS), can provide a cloud-based platform for building and deploying integrations flows that connect applications residing in the cloud or on-premises.

In accordance with an embodiment, an ICS can deliver real-time event-driven cloud to cloud and cloud to on-premise integrations. Such a solution can simplify connectivity between enterprise applications such as Fusion Applications, RightNow, Eloqua, E-Business Suite and other third party Software as a Service (SaaS) and on-premises applications. An ICS allows users to build and deliver integrations in a more agile fashion with much lower capital expense and effort by working with SaaS applications on a common integration platform.

In accordance with an embodiment, an ICS can provide an integration platform in the cloud to maximize companies' investments in SaaS and on-premises applications. An ICS can include an intuitive web based integration designer for point and click integration between applications and a rich monitoring dashboard that provides real-time insight into the transactions, all running on a mature runtime platform on a public cloud. An ICS can accelerate integration projects and significantly shorten the time-to-market through its intuitive and simplified designer, an intelligent data mapper, and a library of adapters to connect to various applications.

FIG. 1 illustrates an integration cloud service in accordance with an embodiment.

As shown in FIG. 1, an ICS 107 can provide a cloud-based integration platform for designing, executing, and managing ICS integration flows. The ICS can include a web application 109 and an ICS runtime 115 executing on an application server 117 in an enterprise cloud environment (for example, Oracle Public Cloud) 101. The web application can provide a design time that exposes a plurality of user interfaces for a developer to design, activate, manage, and monitor an ICS integration flow. An activated ICS integration flow can be deployed and executed on the ICS runtime.

In accordance with an embodiment, a plurality of application adapters 113 can be provided to simplify the task of configuring connections to a plurality of applications, by handling the underlying complexities of connecting to those applications. The applications can include enterprise cloud applications of the ICS vendor (for example, Oracle RightNow) 105, third-party cloud applications (for example, Salesforce) 103, and on-premises applications 119. The ICS can expose simple object access protocol (SOAP) and representational state transfer (REST) endpoints to these applications for use in communicating with these applications.

In accordance with an embodiment, an ICS integration flow (or ICS integration) can include a source connection, a target connection, and field mappings between the two connections. Each connection can be based on an application adapter, and can include additional information required by the application adapter to communicate with a specific instance of an application.

In accordance with an embodiment, an ICS integration flow and a plurality of other required artifacts (for example, JCA and WSDL files) can be compiled into an ICS project, which can be deployed and executed in the ICS runtime.

Decoupling a Source Application and a Target Application

In the integration flow as described, a source application and a target application may be tightly coupled. If either application changes, the integration flow needs to be modified.

In accordance with an embodiment, the system can be used to decouple a source application and a target application using a messaging service associated with a cloud-based integration service. A first integration flow can be provided to enable the source application or producer to publish messages to the messaging service. A second integration flow can be provided to enable the target application or consumer to subscribe to the messaging service to receive messages. The source application and the target application can be agnostic of each other's implementation details, and those of the messaging service, which effectively decouples the source and target applications. The system enables objects between the source and target applications to be sychronized, multiple applications to subscribe to the integration cloud service and register for updates, and one or more applications to be added or removed as subscribers without affecting other subscribers or producers.

FIG. 2 illustrates a system for decoupling a source application and a target application in an integration cloud service (ICS), in accordance with an embodiment.

As shown in FIG. 2, a messaging service 217 enables a source application 211 to publish messages to the ICS, and a target application 221 to subscribe to the ICS. The messaging service can serve as a medium for bridging the source application and the target application. The source application can asynchronously push 213 one or more messages to the messaging service. The target system can receive messages that are asynchronously pushed 219 by the messaging service.

In accordance with an embodiment, the messaging service can be implemented using a plurality of different technologies, for example, Java Message Queue (JMS) or Oracle Messaging Service (OMS). A management component 215 can be provided to manage the communication between the ICS and the messaging service, including managing queues or topics underlying the messaging service.

In accordance with an embodiment, the messaging service can provide a plurality of mechanisms to ensure reliable delivery of data. For example, groups of sent and received messages to be grouped into a single atomic operation. If one send or receive in the group fails, all sends and receives in the group can be “undone”.

In accordance with an embodiment, the source application can asynchronously push messages to the ICS using simple object access protocol (SOAP) or representational state transfer (REST) protocols, and a plurality of REST APIs exposed by the ICS.

In accordance with an embodiment, by using the messaging service as a medium between the source application and the target application, the two applications can be decoupled, enabling objects between the source and target applications to be synchronized. In addition, multiple applications can subscribe to the ICS and register for updates, and one or more applications can be added or removed as subscribers without affecting other subscribers or producers.

In accordance with an embodiment, the decoupling of the source application and the target application can be achieved by combining two types of integration flows. The first type is a publishing integration flow that enables the source application to publish messages to the messaging service. The second type is a subscribing integration flow that enables a target application to receive messages from the messaging service.

FIG. 3 illustrates a user interface for creating a publishing integration flow and a subscribing integration flow, in accordance with an embodiment.

As shown in FIG. 3, the ICS can support a plurality of different types of integration flow patterns, for example, a data mapping integration flow 311, a publishing integration flow 313, and a subscribing integration flow 315.

In accordance with an embodiment, in a data mapping integration flow, an ICS developer 301 can use an application adapter or an application connection to define a source application or a target application in an development interface (e.g., an integration designer) 310. Routing paths and data mappings between the source and target application can also be defined.

In accordance with an embodiment, in a publishing integration flow, a source application or a service can be configured to publish messages to the ICS through a predefined messaging service that can be automatically created if this type of integration flow type is chosen. In a subscribing integration flow, an target application or service can be configured to subscribe to messages from the ICS through the messaging service, which can be also be automatically created if this type of integration flow type is chosen.

FIG. 4 illustrates a publishing integration flow in an ICS design time, in accordance with an embodiment.

As shown in the FIG. 4, an ICS developer can create a publishing integration flow 412 in the development interface, using a plurality of existing connections 402, for example, connection A 403, connection B 405 and connection N 407.

As shown in FIG. 4, a particular connection (for example, connection A) can be dragged and dropped 411 onto the development interface as a source connection 413 that defines information for a source application (for example, an Oracle RightNow Cloud Application). The source application can publish 415 messages to a pre-defined messaging service 417.

In accordance with an embodiment, when the source connection is dragged onto the development interface, an interface for the source connection can be displayed, prompting the ICS developer to enter information such as an endpoint name, and an identifier for this connection. The wizard further allows the ICS developer to select an object (for example, an account), for which messages can be published to the messaging service.

In accordance with an embodiment, the publishing integration flow can be activated, so that it can be subscribed to by a subscribing integration.

In accordance with an embodiment, for messages published by the source application to be subscribed to by a subscribing integration flow, the ICS needs to be configured to act as a publisher, which enables the ICS to publish the messages, to which other adapters or connections can subscribe.

FIG. 5 illustrates a subscribing integration flow in an ICS design time, in accordance with an embodiment.

In accordance with an embodiment, a subscribing integration flow 512 can be created by dragging and dropping 515 a target connection 511 or adapter onto the development interface. After the target connection is dragged and dropped, the ICS developer can be prompted to select a publisher to which to subscribe 513 through the messaging service.

For example, the publishing integration flow created above can be displayed for the ICS developer to select 514. To be subscribed to, a publishing integration flow needs to be completely configured, although it can be inactive.

In accordance with an embodiment, one or more operations and objects can be selected from the target application represented by the target connection. For example, a “create” operation and an organization object can be selected. A mapper can also be available for use in mapping source fields in the source application to the corresponding target fields in the target application.

In accordance with an embodiment, after the publishing integration flow and the subscribing integration flow are both activated, the completed publishing and subscribing integration flows can create a corresponding object in the target application, in response to an object being created in the source application.

For example, when an account is created in the source application (for example, Oracle Sales Cloud), the completed publishing and subscribing integration flows can cause an organization corresponding to the account object to be created in the target application (for example, Oracle RightNow Cloud application).

Other advantages of the completed publishing and subscribing integration flows include enabling multiple applications to subscribe to the ICS and be registered for updates, and additional subscribers to be added or removed without affecting other subscribers or publishers.

FIG. 6 illustrates a method for decoupling a source and target system in an integration flow, in accordance with an embodiment.

As shown in FIG. 6, at step 611, an ICS is provided on a computer including one or more microprocessors, the ICS including a web interface application for designing an integration flow, and a runtime for executing the integration flow, and configured to communicate with a messaging service.

At step 613, a publishing integration flow associated with a source application, and a subscribing integration flow associated with a target application is designed in the web interface application.

At step 615, the publish integration flow and the subscribing integration flow are activated for execution in the runtime of the ICS.

At step 617, the messaging service receives one or more messages asynchronously pushed from the source application to the ICS.

At step 619, the messaging service maps fields of each of the one or more messages to a data format of the target application.

At step 621, the messaging service asynchronously pushes the one or more messages to the target application from the ICS.

Embodiments of the present invention may be conveniently implemented using one or more conventional general purpose or specialized digital computer, computing device, machine, or microprocessor, including one or more processors, memory and/or computer readable storage media programmed according to the teachings of the present disclosure. Appropriate software coding can readily be prepared by skilled programmers based on the teachings of the present disclosure, as will be apparent to those skilled in the software art.

In some embodiments, the present invention includes a computer program product which is a non-transitory storage medium or computer readable medium (media) having instructions stored thereon/in which can be used to program a computer to perform any of the processes of the present invention. Examples of the storage medium can include, but is not limited to, any type of disk including floppy disks, optical discs, DVD, CD-ROMs, microdrive, and magneto-optical disks, ROMs, RAMs, EPROMs, EEPROMs, DRAMs, VRAMs, flash memory devices, magnetic or optical cards, nanosystems (including molecular memory ICs), or any type of media or device suitable for storing instructions and/or data.

The foregoing description of embodiments of the present invention has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations will be apparent to the practitioner skilled in the art. The modifications and variations include any relevant combination of the disclosed features. The embodiments were chosen and described in order to best explain the principles of the invention and its practical application, thereby enabling others skilled in the art to understand the invention for various embodiments and with various modifications that are suited to the particular use contemplated. 

What is claimed is:
 1. A system for decoupling a source application and a target application in a cloud-based integration service, comprising: a computer including one or more microprocessors; a cloud service, executing on the computer, wherein the cloud service includes a web interface application for creating integration flows and a runtime for executing the integration flows, and is configured to communicate with a messaging service; a publishing integration flow associated with a source application, and a subscribing integration flow associated with a target application, wherein the publishing integration flow and the subscribing integration flow are created in the web interface application, and activated for execution in the runtime of the cloud service; wherein the messaging service operates to receive one or more messages asynchronously pushed from the source application to the cloud service through the publishing integration flow, map fields of each of the one or more messages to a data format of the target application, and asynchronously push the one or more messages to the target application from the cloud service through the subscribing integration flow.
 2. The system of claim 1, wherein the publishing integration flow publishes the one or more messages from the source application to the cloud service through the messaging service using representational state transfer (REST) or simple object access (SOAP) protocols.
 3. The system of claim 1, wherein the subscribing integration flow subscribes to the cloud service through the messaging service using representational state transfer (REST) or simple object access (SOAP) protocols.
 4. The system of claim 1, wherein an object created in the source application causes a creation of a corresponding object in the target application.
 5. The system of claim 1, wherein the source application and the target application are agnostic of each other's implementation details, and those of the messaging service.
 6. The system of claim 1, wherein one or more additional applications are configured to subscribe to the cloud service through the messaging service to receive the one or more messages published by the source application.
 7. The system of claim 1, wherein one or more applications are configured to be added or removed as subscribers without impacting other subscribers or producers.
 8. A method for decoupling a source application and a target application in a cloud-based integration service, comprising: providing a cloud service on a computer including one or more microprocessors, the cloud service including a web interface application for creating integration flows and a runtime for executing the integration flows, and configured to communicate with a messaging service; designing, in the web interface application, a publishing integration flow associated with a source application, and a subscribing integration flow associated with a target application; activating the publishing integration flow and the subscribing integration flow for execution in the runtime of the cloud service; receiving, via the messaging service, one or more messages asynchronously pushed from the source application to the cloud service through the publishing integration flow; mapping fields of each of the one or more messages to a data format of the target application; and asynchronously pushing the one or more messages to the target application from the cloud service through the publishing integration flow.
 9. The method of claim 8, wherein the publishing integration flow publishes the one or more messages from the source application to the cloud service through the messaging service using representational state transfer (REST) or simple object access (SOAP) protocols.
 10. The method of claim 8, wherein the subscribing integration flow subscribes to the cloud service through the messaging service using representational state transfer (REST) or simple object access (SOAP) protocols.
 11. The method of claim 8, wherein an object created in the source application causes a creation of a corresponding object in the target application.
 12. The method of claim 8, wherein the source application and the target application are agnostic of each other's implementation details, and those of the messaging service.
 13. The method of claim 8, wherein one or more additional applications are configured to subscribe to the cloud service through the messaging service to receive the one or more messages published by the source application.
 14. The method of claim 8, wherein one or more applications are configured to be added or removed as subscribers without impacting other subscribers or producers.
 15. A non-transitory computer-readable storage medium storing a set of instructions for decoupling a source application and a target application in a cloud-based integration service, said instructions, when executed by one or more processors, causing the one or more processors to perform the steps comprising: providing a cloud service on a computer including one or more microprocessors, the cloud service including a web interface application for creating integration flows and a runtime for executing the integration flows, and configured to communicate with a messaging service; designing, in the web interface application, a publishing integration flow associated with a source application, and a subscribing integration flow associated with a target application; activating the publishing integration flow and the subscribing integration flow for execution in the runtime of the cloud service; receiving, via the messaging service, one or more messages asynchronously pushed from the source application to the cloud service through the publishing integration flow; mapping fields of each of the one or more messages to a data format of the target application; and asynchronously pushing the one or more messages to the target application from the cloud service through the publishing integration flow.
 16. The non-transitory computer-readable storage medium of claim 15, wherein the publishing integration flow publishes the one or more messages from the source application to the integration cloud service through the messaging service using representational state transfer (REST) or simple object access (SOAP) protocols.
 17. The non-transitory computer-readable storage medium of claim 15, wherein the subscribing integration flow subscribes to the integration cloud service through the messaging service using representational state transfer (REST) or simple object access (SOAP) protocols.
 18. The non-transitory computer-readable storage medium of claim 15, wherein an object created in the source application causes a creation of a corresponding object in the target application.
 19. The non-transitory computer-readable storage medium of claim 15, wherein the source application and the target application are agnostic of each other's implementation details, and those of the messaging service.
 20. The non-transitory computer-readable storage medium of claim 15, wherein one or more additional applications are configured to subscribe to the integration cloud service through the messaging service to receive the one or more messages published by the source application. 